package com.jackchen.common.transform;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 该注解添加在VO的属性上
 * 根据直接里面的值，可以告知系统VO的这个属性由哪个PO对象的属性值填充
 * 
 * @author
 *
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldConvert {

	// 必填属性，填入目标POJO的属性名
	// 本VO的这个属性值就从指定的POJO的属性从获得
	// 如果指定的POJO里面的属性又是另一个POJO对象，那么这里再继续指定后续的POJO属性名
	String[] targetFiledName();
	
	// 如果需要从POJO的集合里面取出对应的值放入VO的结合字段时，在VO的集合字段上设置isCollection=true 
	boolean isCollection() default false;
	
	// 配合isCollection使用，当设置了isCollection=true时，一定也要指定结合元素的类型，否则系统异常
	Class elementType() default Object.class;
	
	// 如果VO的属性字段是日期时间(java.util.Date)的话，需要设置转换格式，默认是"yyyy-MM-dd HH:mm:ss"
	String dateFormat() default "yyyy-MM-dd HH:mm:ss";
}
